package vashion.azeroth.core.activity.dao;


import vashion.azeroth.core.activity.GlobalActivityExtendInfoDO;
import vashion.azeroth.core.activity.query.ActivityExtendQueryDO;
import vashion.azeroth.core.dao.DaoRepository;

import java.util.List;

/**
 */
@DaoRepository
public interface GlobalActivityExtendInfoDAO {

    /**
     * 根据活动ID更新活动扩展信息
     *
     * @param globalActivityExtendInfoDO
     * @return
     * @throws
     */
    public Boolean updateByActivityId(GlobalActivityExtendInfoDO globalActivityExtendInfoDO);

    /**
     * 新增
     *
     * @param globalActivityExtendInfoDO
     * @return
     * @throws
     */
    public Long save(GlobalActivityExtendInfoDO globalActivityExtendInfoDO);

    /**
     * 查询
     *
     * @param activityId
     * @return
     * @throws
     */
    public List<GlobalActivityExtendInfoDO> getGlobalActivityExtendInfoList(long activityId);

    /**
     * 逻辑修改状态
     *
     * @param id         主键id
     * @param editStatus
     */
    public void updateExtendStatus(Long id, short editStatus);

    /**
     * 批量逻辑修改状态
     */
    public void deleteExtendByActivityId(Long activityId);

    /**
     * 查询曾参与过的有效宝贝的数量，便于分页
     *
     * @return
     * @throws
     */
    Integer getEffectExtendInfoCount(ActivityExtendQueryDO activityExtendQueryDO);

    /**
     * 查询曾参与过的有效宝贝
     *
     * @return
     * @throws
     */
    List<GlobalActivityExtendInfoDO> getEffectExtendInfoList(ActivityExtendQueryDO activityExtendQueryDO);

    /**
     * 删除活动详情
     *
     * @param id
     * @return
     */
    int deleteExtend(Long id);

    List<GlobalActivityExtendInfoDO> getCurrentActivityExtendList(int activityType);

    List<GlobalActivityExtendInfoDO> getCurrentActivityExtendListWithPage(GlobalActivityExtendInfoDO extendInfoDO);
}
